home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 5 / BBS in a Box -Volume V (BBS in a Box) (April 1992).iso / Files / Prog / T / ThinkC 4.0.2 Update.cpt / TCL Update / TCL Update Doc next >
Encoding:
Text File  |  1990-04-03  |  9.6 KB  |  315 lines  |  [TEXT/KAHL]

  1. TCL UPDATE INSTRUCTIONS
  2. =======================
  3. Copyright © 1990 Symantec Corporation. All rights reserved.
  4. 4/3/90
  5.  
  6. INTRODUCTION
  7. ============
  8. Since Symantec released the THINK Class Library, we've found, and users have
  9. reported, several bugs. This update fixes these bugs
  10.  
  11.     ••    IMPORTANT
  12.         This update is identical to the TCL Update
  13.         update released on 3/15/90 except that it
  14.         fixes three errors
  15.             1.    CPane::FrameToGlobalR() was wrong
  16.             2.    CWindow::FrameToGlobalR() was wrong
  17.             3.    CEditText::DoClick() was wrong
  18.  
  19. This update uses a program called AutoWeave to create new TCL source files
  20. from your existing files. It applies a set of "differences" files to the
  21. original THINK Class Library source files that came with your THINK C
  22. package to create new updated source files.
  23.  
  24. There are two things to watch out for:
  25.  
  26.     •    The AutoWeave program assumes that you have not changed
  27.         how the THINK Class Library source files are organized.
  28.         All of the TCL source files should be a folder called
  29.         THINK Class Library which should contain two folders called
  30.         Core Classes and More Classes.
  31.  
  32.     •    If you modified any of the original source files, you
  33.         should move them to a different folder or rename them.
  34.         Otherwise, the AutoWeave program will replace them with
  35.         updated versions, and your changes will be lost.
  36.         
  37.  
  38. HOW TO USE IT
  39. =============
  40.     ••    Please read through these instructions before you begin.
  41.  
  42.     0.    Be sure that you have your original disk THINK C 3 from your
  43.         THINK C 4.0 package.
  44.  
  45.     1.    Double-click on the file named "TCL Update.Script" to launch
  46.         the AutoWeave program.
  47.         
  48.     2.    The AutoWeave program will ask you to locate the original "THINK
  49.         Class Library" folder. Insert your THINK C 3 disk in the floppy
  50.         drive, choose the folder "THINK Class Library" and click OK.
  51.                 
  52.     3.    The AutoWeave program will ask you to locate your copy of the
  53.         "THINK Class Library" folder.  If you followed the installation
  54.         instructions in your THINK C 4.0 User's Manual, this folder
  55.         is your THINK C Folder.
  56.                 
  57.     4.    The AutoWeave program will ask you to locate the "TCL Update Diffs"
  58.         folder.  This folder is supplied as part of this 
  59.         update.  Select this folder and click OK.  (Be sure
  60.         not to select "TCL Demo Update Diffs" by mistake.)
  61.         
  62.     5.    The AutoWeave program will now modify the appropriate files,
  63.         keeping you informed of its progress.  When it has finished,
  64.         you may want to check one or two of the files, to make sure
  65.         that everything worked.  (For example, if you chose the 
  66.         wrong Diffs folder in step 4, the Weaver wouldn't actually
  67.         do anything, although it might act like it did.)
  68.         
  69.  
  70.  
  71. SUMMARY OF THE CHANGES
  72. ======================
  73.  
  74.     NOTE:    The aSupervisor parameter to descendants of
  75.             CDirector is now required to be of type CApplication
  76.             instead of CBureaucrat. If you get compilation errors
  77.             after updating, look at the declaration of aSupervisor
  78.             in your CDirector and CDocument subclasses.
  79.  
  80. 1.    CApplication.c
  81.         IApplication now calls IBureaucrat(NULL) to init itsSupervisor.
  82.         
  83.         InitMemory now initializes canFail to FALSE.
  84.         
  85. 2.    CBartender.c
  86.         InsertHierMenus now adjust the "afterItem" parameter to ensure
  87.         that it is between 0 and the total number of items in the target
  88.         menu.
  89.         
  90.         InsertHierMenus now passes the correct menu handle to SetItemMark
  91.         and SetItemCmd.
  92.         
  93.         InsertMenuCmd now properly handles the case where an item is being
  94.         added to a menu which initially had no items.
  95.         
  96. 3.    CBitMapPane.c
  97.         IBitMapPane exits if IBitMap fails.
  98.         
  99. 4.    CBureaucrat.c
  100.         UpdateMenus no longer checks for itsSupervisor == NULL;  this is
  101.         unnecessary.
  102.         
  103. 5.    CButton.c
  104.         IButton now initializes printClip and printing.
  105.         
  106.         IButton now adjusts hEncl and vEncl to account for its enclosure's
  107.         origin.
  108.         
  109. 6.    CClipboard.h
  110.         Changed declaration of IClipboard to require aSupervisor to be a
  111.         CApplication.
  112.         
  113. 7.    CClipboard.c
  114.         IClipboard now sets itsScrollPane to NULL if hasWindow is false.
  115.         
  116.         UpdateDisplay now calls DisposHandle(theData) if theData
  117.         points to TEXT  (CStaticText uses a copy, so the original
  118.         is not needed).
  119.         
  120.         Changed implementation of IClipboard to require aSupervisor to be a
  121.         CApplication.
  122.         
  123.         Now #includes CApplication.h.
  124.         
  125. 8.    CDataFile.c
  126.         ReadAll and WriteAll now return errCode.
  127.         
  128. 9.    CDecorator.c
  129.         CenterWindow has been rewritten to account for the menu bar and
  130.         the structure region of the window.
  131.         
  132. 10.    CDirector.h
  133.         Changed declaration of IDirector to require aSupervisor to be a
  134.         CApplication.
  135.         
  136. 11.    CDirector.c
  137.         Changed implementation of IDirector to require aSupervisor to be a
  138.         CApplication.
  139.         
  140. 12.    CDesktop.c
  141.         DispatchClick now sends an Activate message to a window which
  142.         processes an activating click.
  143.         
  144. 13.    CDocument.h
  145.         Changed declaration of IDocument to require aSupervisor to be a
  146.         CApplication.
  147.         
  148. 14.    CDocument.c
  149.         ConfirmClose now updates the document's window before posting the
  150.         "save changes?" alert.
  151.         
  152.         PageCount now returns 0 if itsMainPane == NULL.
  153.         
  154.         Changed implementation of IDocument to require aSupervisor to be
  155.         a CApplication.
  156.         
  157.         Now #includes CApplication.h.
  158.         
  159. 15.    CEditText.c
  160.         Modified DoKeyDown to support scrolling keys on extended keyboards.
  161.         
  162.         Modified DoClick to fix activation problem with multiple EditText 
  163.         fields within a pane.
  164.         
  165.         Now declares gGopher as an extern.
  166.         
  167. 16.    CError.h
  168.         Added declaration of MissingResources method.
  169.         
  170. 17.    CError.c
  171.         GrowZoneFunc now uses SetCurrentA5 and SetA5 instead of SetupA5
  172.         and RestoreA5, as recommended in Tech Note 208.
  173.         
  174.         SevereMacError has been modified and MissingResources has been
  175.         added so that the TCL will fail gracefully when no resource file
  176.         is present.
  177.         
  178.         Now declares gSleepTime and gHasWNE as externs.
  179.         
  180.         Now #includes CStaticText.h.
  181.         
  182. 18.    CFWDesktop.h
  183.         Added CalcTopFloat() method declaration.
  184.         
  185. 19.    CFWDesktop.c
  186.         Added CalcTopFloat() method definition.
  187.         
  188. 20.    CList.c
  189.         MoveDown has been corrected to allow the first item in the list
  190.         to be moved (now tests for i >= 0 instead of i > 0).
  191.         
  192. 21.    CMBarChore.c
  193.         Uses #include "Global.h" instead of #include <Global.h>.
  194.         
  195. 22.    Constants.h
  196.         Added #defines for Home, End, Page Up, Page Down key codes.
  197.         
  198. 23.    CPane.c
  199.         CalcAperture now propagates down to the pane's subviews.
  200.         
  201.         Moved the Pane_CalcAperture function from just above
  202.         AdjustToEnclosure to just above CalcAperture.
  203.         
  204.         The code which sent CalcAperture messages to all of the pane's
  205.         subviews has been removed, since this is done in the CalcAperture
  206.         method itself.
  207.         
  208.         The code which handles moving AND resizing a pane at the same
  209.         time has been changed to redraw the pane after the Offset as
  210.         well as after the ChangeSize.  This causes the original location
  211.         of the pane to be invalidated properly.
  212.         
  213.         IViewTemp now initializes autoRefresh correctly.
  214.         
  215.         FrameToGlobalR now works whether or not the window is visible.
  216.         
  217.         ChangeSize now saves the old aperture before calling ResizeFrame
  218.         (in some cases, ResizeFrame can cause the aperture to be updated).
  219.         
  220. 24.    CPanorama.h
  221.         Added DoKeyDown method declaration (support for scrolling keys
  222.         on extended keyboards).
  223.         
  224.         Added declaration of Pane_EnclosureScrolled so that subclasses of 
  225.         CPanorama may use this function when overriding Scroll.
  226.         
  227. 25.    CPanorama.c
  228.         AutoScroll always calls Prepare after scrolling, even if
  229.         itsScrollPane == NULL.
  230.         
  231.         ResizeFrame ties the scroll position to the left of the
  232.         frame instead of moving the origin.
  233.         
  234.         Added DoKeyDown method to implement Home, End, Page Up, Page
  235.         Down scrolling keys.
  236.         
  237.         Now #includes Constants.h and CWindow.h.
  238.         
  239.         Pane_EnclosureScrolled function is no longer declared static, so
  240.         that subclasses of CPanorama may use this function when overriding
  241.         Scroll.
  242.         
  243.         Scroll now redraws the Panorama by sending an Update message to
  244.         its enclosing window.  Previously, this method was blindly
  245.         throwing away the window's update region before drawing the
  246.         Panorama.
  247.         
  248.         SetScales now ensures that the scales are >= 1.
  249.         
  250. 26.    CPictFile.c
  251.         IPictFile now calls IDataFile instead of IFile.
  252.         
  253. 27.    CPicture.h
  254.         Added declaration of Dispose method.
  255.         
  256. 28.    CPicture.c
  257.         Added Dispose method to dispose of the "macPicture" PicHandle.
  258.         
  259. 29.    CPNTGFile.c
  260.         IPNTGFile now calls IDataFile instead of IFile.
  261.         
  262. 30.    CRadioButton.h
  263.         Changed declaration of IRadioButton to require aSupervisor to be
  264.         a CRadioGroup.
  265.         
  266. 31.    CRadioButton.c
  267.         Changed implementation of IRadioButton to require aSupervisor to be
  268.         a CRadioGroup.
  269.  
  270. 32.    CScrollBar.c
  271.         IScrollBar now initializes printClip and printing.
  272.         
  273. 33.    CStaticText.c
  274.         IStaticTextX no longer passes instance var address to
  275.         TENew, which can move memory.
  276.         
  277.         SetWholeLines now calls CalcAperture before CalcTERects to
  278.         handle the case where the frame has changed size.
  279.         
  280.         In AdjustBounds, corrected the calculation of bounds.right.
  281.         
  282. 34.    CSwitchboard.c
  283.         Modified DoKeyEvent to support F1, F2, F3, F4 keys (undo, cut,
  284.         copy, paste).
  285.         
  286.         Now #includes Commands.h.
  287.         
  288.         Now #defines KeyF1, KeyF2, KeyF3, KeyF4 key codes.
  289.         
  290.         ProcessEvent now gets the mouse location by setting the port to
  291.         the Desktop's port and using GetMouse.  This way, the current port
  292.         is always valid.
  293.         
  294. 35.    CTearOffMenu.h
  295.         ITearOffMenu parameter (aSupervisor) is now a CApplication.
  296.  
  297. 36.    CTearOffMenu.c
  298.         Suspend and Resume now correctly update the gDesktop->topFloat
  299.         instance var by sending gDesktop a CalcTopFloat message.
  300.         
  301.         #includes CFWDesktop instead of CDesktop.
  302.         
  303.         ITearOffMenu parameter (aSupervisor) is now a CApplication.
  304.         
  305. 37.    CTextEnvirons.c
  306.         ITextEnvirons now initializes the textInfo struct.
  307.         
  308. 38.    CWindow.c
  309.         ChangeSize now calls Update() before exiting.
  310.         FrameToGlobalR now works whether or not the window is visible.
  311.         
  312. 39.    TBUtilities.c
  313.         ConcatPStrings now truncates the resulting string if it would be
  314.         longer than 255 chars.
  315.